package smartlifev30.com.sdk.api.gateway_app;

import android.support.annotation.NonNull;
import android.support.annotation.Nullable;

import java.util.List;

import smartlifev30.com.sdk.api.CallBack;
import smartlifev30.com.sdk.bean.request.AddTimerRequest;
import smartlifev30.com.sdk.bean.request.EditTimerRequest;
import smartlifev30.com.sdk.bean.response.LoginResponse;
import smartlifev30.com.sdk.bean.response.TimeQueryResponse;

/**
 * Created by tys on 2018/8/13.
 */

public interface ITimerMgmtGateway {
    /**
     * 查询定时列表
     * @param userName
     * @param token
     * @param sn
     * @param timerId 长度为0时代表查询所有定时
     * @param callBack
     */
    void queryTimer(@NonNull String userName, @NonNull String token, @NonNull String sn,
                    @Nullable List<Integer> timerId, @NonNull CallBack<TimeQueryResponse> callBack);

    /**
     * 添加一个定时
     * @param userName
     * @param token
     * @param sn
     * @param timer
     * @param callBack
     */
    void addTimer(@NonNull String userName, @NonNull String token, @NonNull String sn,
                  @NonNull AddTimerRequest.Timer timer, @NonNull CallBack<LoginResponse> callBack);

    /**
     * 删除一个/多个定时
     * @param userName
     * @param token
     * @param sn
     * @param timerId 长度为0时代表清除所有定时
     * @param callBack
     */
    void delTimer(@NonNull String userName, @NonNull String token, @NonNull String sn,
                  @Nullable List<Integer> timerId, @NonNull CallBack<LoginResponse> callBack);

    /**
     * 编辑一个定时信息
     * @param userName
     * @param token
     * @param sn
     * @param timer
     * @param callBack
     */
    void editTimer(@NonNull String userName, @NonNull String token, @NonNull String sn,
                   @NonNull EditTimerRequest.Timer timer, @NonNull CallBack<LoginResponse> callBack);

}
